package main

func main() {

	// time 包时间
	// 获取当前时间
	// time := time.Now()
	// fmt.Println(time)

	// 获取当前时间戳
	// time := time.Now()
	// fmt.Println(time.Unix(), time.UnixNano()) // 秒 纳秒

	// time 可获取当前时间的年月日 02d 如果不够2位就拿前导0补位
	// time := time.Now()
	// fmt.Printf("%d-%02d-%02d %02d:%02d:%02d", time.Year(), time.Month(), time.Day(), time.Hour(), time.Minute(), time.Second())

	//  format格式化 "2006-01-02 03:04:05" 这个模版是固定的数值中间的分割符号可以换  数值是固定死的 03 12小时制 15 24小时制 2006年 01月 02日 03时 04分 05秒
	// time := time.Now()
	// str := time.Format("2006-01-02 15:04:05")
	// fmt.Println(str)

	// 时间戳转time对象
	// time := time.Unix(int64(1593426252), 0) // 秒放第一个参数 第二个0 纳秒放第二个参数第一个0
	// c := time.Format("2006-01-02 15:04:05")
	// fmt.Println(c)

	// 日期字符串转时间戳
	// str := "2010-06-29 18:24:12" // 注意下面的模版要和这个时间一样格式
	// ts, _ := time.ParseInLocation("2006-01-02 15:04:05", str, time.Local)
	// fmt.Println(ts.Unix(), ts.Format("2006-01-02 15:04:05"))

	// 时间常量 有啥用？ 时间间隔可以用 常量 * n 间隔多少时间
	// fmt.Println(
	// 	time.Nanosecond,  // *1000 = 下面
	// 	time.Microsecond, // *1000 = 下面
	// 	time.Millisecond, // *1000 = 下面 毫秒
	// 	time.Second,      // *60 = 下面 秒
	// 	time.Minute,      // *60 = 下面
	// 	time.Hour,
	// )

	// 时间操作函数 用到查查这里举个例子常量使用场景
	// times := time.Now()
	// fmt.Println(times)
	// times = times.Add(time.Hour * 2) // 增加2小时
	// fmt.Println(times)

	// 定时器
	// for{
	// 	time.Sleep(time.Second*5 ) // 5 秒休眠一次 break 跳出循环
	// }

	// c := time.NewTicker(time.Second * 5) // 创建定时器没5秒搞一次
	// for v := range c.C {                 // 只返回val没有key
	// 	fmt.Println(v) // v返回当前时间 相当死循环

	// 	// 停止 Stop + break
	// 	c.Stop()
	// 	break
	// }

}
